]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
3 years agomain: Load perf scripts as modules
Florian Müllner [Tue, 13 Jun 2023 00:13:01 +0000 (02:13 +0200)]
main: Load perf scripts as modules

The perf scripts that can be used to script the gnome-shell UI
for testing are sufficiently separate from the rest of the code
base to allow porting them to ESM modules before the rest of
the code base.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2812>

3 years agoci: Look for matching ref in user remote for branch pipeline
Florian Müllner [Sat, 1 Jul 2023 18:25:52 +0000 (20:25 +0200)]
ci: Look for matching ref in user remote for branch pipeline

We currently only find a matching ref on the same remote in
a merge request pipeline, but not in branch pipelines.

It can occasionally be useful to run a pipeline without opening
a merge request, so try the same remote here as well instead of
just assuming origin.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2814>

3 years agoextensionSystem: Remove "disable" file on shutdown
Florian Müllner [Mon, 12 Jun 2023 21:28:54 +0000 (23:28 +0200)]
extensionSystem: Remove "disable" file on shutdown

The file indicates to the systemd shutdown scripts that extensions
should be disabled, so that extensions that crash the shell on
startup cannot lock out the user indefinitely.

For that purpose, we create the file before initializing extensions,
and remove it after 60 seconds. That generally works, because it's
highly unlikely that a session genuinely ends within the first minute.

It's possible though (for example during developments or when running
tests), so also remove the file when shutting down cleanly before
the timeout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2807>

3 years agoextensions-tool: Adjust templates
Florian Müllner [Thu, 1 Jun 2023 22:47:22 +0000 (00:47 +0200)]
extensions-tool: Adjust templates

Extensions are now loaded as modules, so adjust the templates
accordingly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2795>

3 years agoextensionUtils: Remove installImporter()
Florian Müllner [Thu, 8 Jun 2023 16:36:48 +0000 (18:36 +0200)]
extensionUtils: Remove installImporter()

The method is now unused, so remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2795>

3 years agodbusServices/extensions: Load preferences as module
Florian Müllner [Fri, 2 Jun 2023 02:12:34 +0000 (04:12 +0200)]
dbusServices/extensions: Load preferences as module

Now that extensions themselves are imported as modules, do the
same for their preference dialogs.

Extensions must now export a class with a `fillPreferencesWindow()`
method as default.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2795>

3 years agoextensionSystem: Load extensions as modules
Florian Müllner [Thu, 1 Jun 2023 22:47:22 +0000 (00:47 +0200)]
extensionSystem: Load extensions as modules

Continue the move to ESM by loading modules dynamically with
the standard import() expression, rather than by installing a
custom (legacy) importer.

This is a breaking change that affects all extensions, as they
now need to explicitly export the expected symbols.

As we are already breaking all extensions, take that opportunity
and remove support for the individual entry points: Using a
class with enable()/disable() methods has been the recommended
pattern for a long time, it is now the only entry point.

Instead of instantiating the class from an `init()` function,
the class must now be exported as default to be recognized.

Additionally, we no longer install an importer on the extension
object, so extensions that consist of more than one file MUST
import those files as modules now.

There will be a second breaking change for extensions when
gnome-shell's own code is ported to ESM, so most extension
developers will likely want to wait until the port is complete
before starting to port their extensions.

Based on a commit from Evan Welsh.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2795>

3 years agoBump version to 45.alpha
Florian Müllner [Mon, 3 Jul 2023 18:26:29 +0000 (20:26 +0200)]
Bump version to 45.alpha

Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2817>

3 years agobuild: Bump mutter API version
Florian Müllner [Mon, 3 Jul 2023 18:33:00 +0000 (20:33 +0200)]
build: Bump mutter API version

This slipped so far this cycle, let's do it in time for the alpha
release.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2817>

3 years agoci: Print ESLint version before running script
Evan Welsh [Thu, 8 Jun 2023 06:21:40 +0000 (23:21 -0700)]
ci: Print ESLint version before running script

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2821>

3 years agoanimations: Stop syncing size manually
Florian Müllner [Fri, 9 Jun 2023 18:12:15 +0000 (20:12 +0200)]
animations: Stop syncing size manually

The returned slice actors are now set up to fill their parent,
accounting for any difference between loaded- and displayed size,
so we can stop syncing the size manually.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2798>

3 years agost/texture-cache: Set up sliced images to fill parent
Florian Müllner [Fri, 9 Jun 2023 17:52:15 +0000 (19:52 +0200)]
st/texture-cache: Set up sliced images to fill parent

When using fractional scaling, the size of the loaded image with
applied scaling may still differ from the displayed size. This
is currently addressed by syncing the size of all slice actors
in the (probably only) caller.

Instead, set the actors to fill their parent automatically.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2798>

3 years agoshell/util: Use gtk4 for week-start fallback
Florian Müllner [Mon, 3 Jul 2023 17:32:13 +0000 (19:32 +0200)]
shell/util: Use gtk4 for week-start fallback

If langinfo isn't available, we determine the week start via
a "magic" string translation from GTK. We currently look up
the string in GTK3's domain, we should use GTK4's instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2816>

3 years agobuild: Specify systemd version requirement
Joan Torres [Fri, 16 Jun 2023 14:23:30 +0000 (16:23 +0200)]
build: Specify systemd version requirement

Since we are specifying in the unit files a comment of requiring
systemd >= 246, set the req at buildtime and drop the comment.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2800>

3 years agoUpdate British English translation
Bruce Cowan [Fri, 30 Jun 2023 19:20:43 +0000 (19:20 +0000)]
Update British English translation

(cherry picked from commit f3ccc0d23a3da42ef820f70f1eaa4d6962c5bb50)

3 years agotests: Remove interactive tests
Florian Müllner [Thu, 22 Jun 2023 16:10:48 +0000 (18:10 +0200)]
tests: Remove interactive tests

The tests rely on the ability to run Clutter as stand-alone app,
which hasn't been possible for quite a while now. Event handling
was broken long before that, plus tests that need a human to run
them and evaluate the result aren't that useful to begin with.

It would be neat to test our CSS rendering by setting up a stage,
capturing it and comparing it to a reference image. But writing
some code that exercises backgrounds, borders etc. is hardly the
obstacle to make that happen, and not worth carrying around dead
code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2811>

3 years agoRevert "ci: Wrap calls with sudo when building toolbox"
Florian Müllner [Wed, 28 Jun 2023 21:37:59 +0000 (23:37 +0200)]
Revert "ci: Wrap calls with sudo when building toolbox"

This was necessary after mutter configured a non-root user
for the image, although as it turned out not sufficient.

The latest image no longer sets up a special user, so building
the toolbox image should work again as before.

This reverts commit ee384d85dac1b0582613bea9263424c9c197839e.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2813>

3 years agoci: Bump mutter image
Florian Müllner [Wed, 28 Jun 2023 21:36:29 +0000 (23:36 +0200)]
ci: Bump mutter image

Mutter stopped hardcoding a non-default user in the image, and
instead wraps its CI tests to run as user. Pull in that image
to hopefully get over some of the recent CI hickups.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2813>

3 years agoUpdate Hebrew translation
Yosef Or Boczko [Wed, 28 Jun 2023 07:34:52 +0000 (07:34 +0000)]
Update Hebrew translation

3 years agowindowManager: Add shortcut for toggling quick settings
Florian Müllner [Tue, 21 Mar 2023 16:07:19 +0000 (17:07 +0100)]
windowManager: Add shortcut for toggling quick settings

Ever since the various status menus were combined into a single
aggregate menu, the menu has been an important entry point. Alas,
we never got around to adding a shortcut for it, not least because
there never was a good candidate.

We just freed super+s which works as either "system" or
"(quick) settings", so use that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5670

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2716>

3 years agowindowManager: Reindent shortcuts setup
Florian Müllner [Tue, 21 Mar 2023 17:09:08 +0000 (18:09 +0100)]
windowManager: Reindent shortcuts setup

We require all new code to use the non-legacy style. Updating code
on a case-by-case basis works fairly well most of the time, but
here we have a big uniform block, where any addition with a different
style would stick out badly.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5670

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2716>

3 years agodata: Unset default shortcut for 'toggle-overview'
Florian Müllner [Wed, 12 Apr 2023 16:11:51 +0000 (18:11 +0200)]
data: Unset default shortcut for 'toggle-overview'

The keybinding is a direct, less commonly used alternative to
stand-alone 'super'. While it can be useful to have a regular
keybinding alternative - although 'super+alt+up' also provides
that to some extent - most users probably don't even know about
it's existence.

It is therefore less justified to take away a valuable shortcut
slot, so stop assigning a default shortcut to free 'super+s' for
other actions.

Users who do use the keybinding can still use Settings to assign
a shortcut.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5670

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2716>

3 years agojs: Fix linting errors from line shifts
Evan Welsh [Thu, 8 Jun 2023 04:53:07 +0000 (21:53 -0700)]
js: Fix linting errors from line shifts

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2794>

3 years agojs: Split gi imports to be on new lines to prepare for ES modules
Evan Welsh [Thu, 8 Jun 2023 04:52:46 +0000 (21:52 -0700)]
js: Split gi imports to be on new lines to prepare for ES modules

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2794>

3 years agoportalHelper: Port to ESM
Florian Müllner [Thu, 25 May 2023 20:22:09 +0000 (22:22 +0200)]
portalHelper: Port to ESM

The helper app that provides the login dialog for network portals
is another separate process that can be moved to ESM separately.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2786>

3 years agoportalHelper: Stop using non-default ARGV vector
Florian Müllner [Tue, 30 May 2023 12:41:36 +0000 (14:41 +0200)]
portalHelper: Stop using non-default ARGV vector

If gjs itself defines ARGV, it only holds the arguments that are
passed on to the script, and javascript code should combine the
programName and ARGV (or the newer programArgs) when it needs a
C-style argv array.

Do the same in the portal-helper process instead of passing along
the original C argv, to avoid confusion when accessing the arguments
from javascript.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2786>

3 years agoextensions-app: Port to ESM
Florian Müllner [Thu, 25 May 2023 19:23:24 +0000 (21:23 +0200)]
extensions-app: Port to ESM

The extensions app is another part of the code base that is largely
separate from the main code base, and can therefore be ported to
ESM before the big switch.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2786>

3 years agodbusServices: Port to ESM
Florian Müllner [Thu, 25 May 2023 18:31:22 +0000 (20:31 +0200)]
dbusServices: Port to ESM

We want to replace gjs' custom (and now legacy) imports system
with standard EcmaScript modules: JS developers are already
familiar with them, they have better tooling support and using
standard features over non-standard ones is generally the right
thing to do.

Our D-Bus services are separate from the main process, and thus
can be ported separately (except for the few imports that are
shared with the main process' code base).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2786>

3 years agopanel: Stylesheet updates and minor improvements for panel buttons
Sam Hewitt [Mon, 19 Jun 2023 19:52:29 +0000 (17:22 -0230)]
panel: Stylesheet updates and minor improvements for panel buttons

- spin out all the panel button styling into a drawing mixin
- clean up the styles generally
- make special cases for the clock and non-flat buttons
- contrast fixes for non-flat buttons, fixes #6768
- new stop icon for the screen recording/cast indicators

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2804>

3 years agoworkspace: Reapply border radius on background changes
Florian Müllner [Mon, 19 Jun 2023 00:24:47 +0000 (02:24 +0200)]
workspace: Reapply border radius on background changes

The rounded corner effect is applied to the background actor, so
we have to reapply the correct values when the background changes
for the corners to persist.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4125

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2801>

3 years agoci: Wrap calls with sudo when building toolbox
Florian Müllner [Tue, 20 Jun 2023 00:21:47 +0000 (02:21 +0200)]
ci: Wrap calls with sudo when building toolbox

The mutter image now sets up a non-root default user, so we have
to wrap everything with sudo or su.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2806>

3 years agoci: Bump mutter image
Florian Müllner [Mon, 19 Jun 2023 21:15:13 +0000 (23:15 +0200)]
ci: Bump mutter image

The updated image contains a recent enough libadwaita version to
run the extensions app after commit 38243410.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2805>

3 years agosubprojects/shew: Adjust to GTK deprecation
Florian Müllner [Sat, 27 May 2023 13:00:43 +0000 (15:00 +0200)]
subprojects/shew: Adjust to GTK deprecation

GTK 4.12 deprecates gdk_wayland_toplevel_unexport_handle() in favor
of the new gdk_wayland_toplevel_drop_exported_handle(). We are not
bound by API stability, so we can just expose the additional argument
that the replacement requires instead of tracking the handle
internally.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2778>

3 years agowindow: Move search button to the start
Christopher Davis [Mon, 19 Jun 2023 01:33:06 +0000 (21:33 -0400)]
window: Move search button to the start

Matches AdwPreferencesWindow.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2802>

3 years agowindow: Port to AdwToolbarView
Christopher Davis [Mon, 19 Jun 2023 00:55:38 +0000 (20:55 -0400)]
window: Port to AdwToolbarView

Applications should use AdwToolbarView going forward to contain
their headerbar and content.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2802>

3 years agowindow: Port to AdwApplicationWindow
Christopher Davis [Mon, 19 Jun 2023 00:53:30 +0000 (20:53 -0400)]
window: Port to AdwApplicationWindow

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2802>

3 years agoextensions-app: Extend build instructions
Martin Zurowietz [Tue, 13 Jun 2023 19:05:49 +0000 (21:05 +0200)]
extensions-app: Extend build instructions

Related to #6575

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2799>

3 years agoparentalControlsManager: Don't log error when disabled
Florian Müllner [Fri, 9 Jun 2023 13:41:03 +0000 (15:41 +0200)]
parentalControlsManager: Don't log error when disabled

We currently special-case the DISABLED error when initializing
filtering, but not on app filter changes.

While it seems reasonable that Malcontent.Manager wouldn't emit
the signal while disabled, that's not actually true: It is emitted
when any user account information tracked by AccountsServices
changes.

Even if the signal were limited to changes of the ParentalControls
extension, it would still get emitted when app filtering *becomes*
disabled.

So regardless of potential improvements in libmalcontent itself,
we should filter out the DISABLED consistently, both when creating
the initial filter and when updating it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6749

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2796>

3 years agoUpdate Slovak translation
Dušan Kazik [Thu, 8 Jun 2023 14:09:24 +0000 (14:09 +0000)]
Update Slovak translation

(cherry picked from commit 113bcb4b106ffd146ee2632d7fe8c9fb0156e058)

3 years agomagnifier: Fix cursor offset
Андрей Гриценко [Mon, 29 May 2023 14:42:13 +0000 (17:42 +0300)]
magnifier: Fix cursor offset

Commit c449058d447c2588d changed the pointer clone to use a single
actor. However that broke applying the hotspot translation to the
position, so the magnified cursor is now displayed with a shift.

Undo the change to restore the old behavior.

This reverts commit c449058d447c2588de81df2e2bd7a1ae98c4060f.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2780>

3 years agoinit: Move Meta main loop into JavaScript after GJS context is initialized
Evan Welsh [Wed, 7 Jun 2023 15:58:08 +0000 (08:58 -0700)]
init: Move Meta main loop into JavaScript after GJS context is initialized

gjs now has an internal mainloop that it can spin to resolve
module imports. That loop uses the thread default context,
so its possible that other sources, namely from mutter, get
dispatched when iterating the context. If that happens before
mutter is properly initialized, this will lead to a crash.

GjsContext needs to iterate its internal mainloop when initializing
to resolve internal modules, to avoid iterating Meta's mainloop and
triggering events before Meta is ready we will initialize the Shell
global and thus the GjsContext (js_context) before Meta.

Once GjsContext is initialized, we can call meta_context_setup().
Once Meta is setup and started, we'll run init.js which uses GJS'
internal promises API to set a "mainloop hook". The mainloop hook
is run immediately after the module returns so GJS will not attempt
to iterate the main loop again before exiting.

Also adjust the 'headlessStart' test to not wait for the
MetaContext::started signal, as that signal has now already
been emitted when the code is executed.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6691

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2781>

3 years agopanel: Refactor quick settings loading for asynchronous imports
Evan Welsh [Wed, 7 Jun 2023 15:30:29 +0000 (08:30 -0700)]
panel: Refactor quick settings loading for asynchronous imports

When the Shell ports to ESM, our inline imports of the network and
bluetooth indicators will no longer be possible, refactor quick settings
to load indicators asynchronously.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2563>

3 years agoanimation: Don't get size information until spinner has a parent
Evan Welsh [Wed, 7 Jun 2023 15:47:50 +0000 (08:47 -0700)]
animation: Don't get size information until spinner has a parent

get_size() in _syncAnimationSize() can't be called until the actor
has a parent, otherwise we'll get an error for calling
st_get_theme_node() prior to the actor being on a stage.

_syncAnimationSize() is called asynchronously via
textureCache.load_sliced_image() and there is currently no guarantee
the actor will actually be "loaded" prior to calling it.

This becomes a more obvious error/issue when refactoring parts of the
Shell loading to also be asynchronous.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2563>

3 years agoci: Migrate eslint-plugin-jsdoc rule and pin eslint versions
Evan Welsh [Wed, 7 Jun 2023 06:23:54 +0000 (23:23 -0700)]
ci: Migrate eslint-plugin-jsdoc rule and pin eslint versions

Pin eslint to v8 and eslint-plugin-jsdoc to v46, migrate the removed
jsdoc rule.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2792>

3 years agoUpdate Russian translation
Julia Dronova [Wed, 7 Jun 2023 16:00:05 +0000 (16:00 +0000)]
Update Russian translation

3 years agoshell/perf-helper: Port to GTK4
Florian Müllner [Thu, 13 Apr 2023 20:39:29 +0000 (22:39 +0200)]
shell/perf-helper: Port to GTK4

After the preparations in the previous commits, the port is now
fairly straight-forward.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Use custom widget as content
Florian Müllner [Mon, 17 Apr 2023 23:52:26 +0000 (01:52 +0200)]
shell/perf-helper: Use custom widget as content

The windows we create use a simple pattern as content, as that's
easier to follow than completely empty windows. GTK4 no longer
allows hooking into the drawing of arbitrary widgets, so prepare
for that by using a dedicated subclass instead of a signal handler.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Use custom CSS for background
Florian Müllner [Tue, 18 Apr 2023 01:35:17 +0000 (03:35 +0200)]
shell/perf-helper: Use custom CSS for background

GTK4 no longer has the concept of "app-paintable" to skip the
default background drawing. Prepare for that by setting the
desired background via CSS and draw on top of that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-handler: Use app to track window
Florian Müllner [Fri, 14 Apr 2023 23:35:42 +0000 (01:35 +0200)]
shell/perf-handler: Use app to track window

GtkApplication already tracks its windows, so we don't have to
maintain our own list.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Subclass ApplicationWindow
Florian Müllner [Tue, 18 Apr 2023 17:07:29 +0000 (19:07 +0200)]
shell/perf-helper: Subclass ApplicationWindow

The signals we use to track whether a window has been mapped and
exposed no longer exist in GTK4. Prepare for that by using a
dedicated subclass instead of signal handlers.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Use GApplication
Florian Müllner [Thu, 13 Apr 2023 14:40:58 +0000 (16:40 +0200)]
shell/perf-helper: Use GApplication

The gtk_main() API is gone in GTK4, so we'll have to either
manage our own loop, or use GApplication. The latter also
handles the D-Bus setup for us, so use that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Remove unused struct members
Florian Müllner [Thu, 13 Apr 2023 20:47:26 +0000 (22:47 +0200)]
shell/perf-helper: Remove unused struct members

Some parameters are only relevant when creating the window, and
are therefore never read from the window info struct.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoscripting: Make helper proxy initialization async
Florian Müllner [Sat, 27 May 2023 01:19:39 +0000 (03:19 +0200)]
scripting: Make helper proxy initialization async

We are about to port the helper proxy to GApplication, which means
that it will establish a display connection before exporting its
D-Bus name. That means that the compositor must be able to respond
to a roundtrip request to avoid locking, so don't block on the proxy
becoming available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agost/test-theme: Don't initialize GTK
Florian Müllner [Wed, 12 Apr 2023 14:44:52 +0000 (16:44 +0200)]
st/test-theme: Don't initialize GTK

St no longer requires GTK to be initialized, so this is no longer
needed (and pulls in an unnecessary GTK dependency).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agotests: Port to Gtk4
Florian Müllner [Wed, 8 Mar 2023 19:25:13 +0000 (20:25 +0100)]
tests: Port to Gtk4

There's another remaining bit of Gtk3 code in a small test program
that changes a window title to a random character sequence every
five seconds. While the value of that test is a bit questionable,
it doesn't hurt either and a port is trivial.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agotests: Stop using Gtk.PolicyType
Florian Müllner [Wed, 12 Apr 2023 13:20:42 +0000 (15:20 +0200)]
tests: Stop using Gtk.PolicyType

St got its own enum type years ago, so use that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agotests: Remove gapplication test app
Florian Müllner [Wed, 12 Apr 2023 13:24:25 +0000 (15:24 +0200)]
tests: Remove gapplication test app

Its only purpose is to provide a test case for the remote app menu,
but that support was removed in gnome-shell years ago. We don't
need a test case for GTK's fallback app menu support, so remove
the whole thing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agodata: Use ConditionEnvironment on unit files
Joan Torres [Wed, 7 Jun 2023 07:59:25 +0000 (09:59 +0200)]
data: Use ConditionEnvironment on unit files

Following GNOME/gnome-shell!1472. It's been almost three years since
ConditionEnvironment was available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2791>

3 years agobackgroundApps: Allow activating apps
Florian Müllner [Fri, 19 May 2023 17:02:08 +0000 (19:02 +0200)]
backgroundApps: Allow activating apps

Now that we track apps instead of instances, we can make the menu
items activatable, because the corresponding action is no longer
app specific (like activating a particular tab): We can simply
activate the app, which hopefully will bring it to the foreground
again.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2790>

3 years agobackgroundApps: Track apps instead of instances
Florian Müllner [Fri, 19 May 2023 14:36:39 +0000 (16:36 +0200)]
backgroundApps: Track apps instead of instances

The background apps menu currently tracks instances rather than
apps. That matches the behavior of `flatpak ps` and can be useful,
for example when one particular instance runs out of control.

But as we don't include any information that allows to actually
distinguish between instances, multiple instances appear simply
as duplicated app entries.

Given that a menu is too limited for detailed information, stop
representing individual instances, and track apps instead.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6654

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2790>

3 years agoUpdate Portuguese translation
Hugo Carvalho [Sun, 4 Jun 2023 07:44:01 +0000 (07:44 +0000)]
Update Portuguese translation

3 years agooverview: Provide public access for search provider registration
Andy Holmes [Thu, 1 Jun 2023 22:54:59 +0000 (15:54 -0700)]
overview: Provide public access for search provider registration

Provide a reasonably public way to register and unregister search
providers, without adding too much API.

`Main.overview.searchController` provides access that may be generally
useful, while `SearchController.addProvider()` and
`SearchController.removeProvider()` provide a simple interface for
extensions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2783>

3 years agoscreencastService: Fix 'pipeline' option
robert.mader@collabora.com [Tue, 30 May 2023 18:23:14 +0000 (20:23 +0200)]
screencastService: Fix 'pipeline' option

When introducing the pipeline fallback mechanism, support for defining a
custom pipeline was unintentionally dropped, breaking extensions such as
EasyScreenCast.

Fixes 9cb40c4814b6be908edde4fb77a8d900a4cac51a

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2782>

3 years agoUpdate Catalan translation
Jordi Mas i Hernandez [Sun, 28 May 2023 17:52:00 +0000 (17:52 +0000)]
Update Catalan translation

3 years agoUpdate Turkish translation
Sabri Ünal [Fri, 26 May 2023 23:06:55 +0000 (23:06 +0000)]
Update Turkish translation

3 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Fri, 26 May 2023 22:23:11 +0000 (22:23 +0000)]
Update Brazilian Portuguese translation

3 years agobuild: Remove Soup2 support
Florian Müllner [Wed, 24 May 2023 15:09:55 +0000 (17:09 +0200)]
build: Remove Soup2 support

We started to support Soup3 in GNOME 41, and used it by default
since GNOME 43. This should be enough time for distros to adapt,
so GNOME 45 looks like a good moment to drop the old Soup2 support.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2776>

3 years agosubprojects/extensions-tool: Support stylesheet variants
Florian Müllner [Tue, 21 Mar 2023 21:56:27 +0000 (22:56 +0100)]
subprojects/extensions-tool: Support stylesheet variants

Now that extensions can provide dark/light variants of their
stylesheet, pick up those files automatically when packaging
an extension.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agoextensionSystem: Support stylesheet variants
Florian Müllner [Tue, 21 Mar 2023 21:53:05 +0000 (22:53 +0100)]
extensionSystem: Support stylesheet variants

Since we started to support the color-scheme preference, extensions
should be able to provide appropriate variants (if they deal with
colors).

So look for a variant with -dark/-light suffix before using the
plain stylesheet.css, and reload extension stylesheets on
color scheme changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agomain: Consider color-scheme setting for default stylesheet
Florian Müllner [Fri, 3 Jun 2022 15:21:08 +0000 (17:21 +0200)]
main: Consider color-scheme setting for default stylesheet

Our own preference - equivalent to AdwStyleManager's color-scheme
property - is expressed via a new session mode property.

The default mode uses 'prefer-dark', gnome-classic is expected
to use 'force-light'.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5545

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agotheme: Include both dark and light variant in resource
Florian Müllner [Fri, 3 Jun 2022 14:15:38 +0000 (16:15 +0200)]
theme: Include both dark and light variant in resource

This will allow us to switch between the variants according to
the color-scheme setting.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5545

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agost/settings: Expose system color scheme
Florian Müllner [Fri, 3 Jun 2022 15:19:59 +0000 (17:19 +0200)]
st/settings: Expose system color scheme

This is the same interface setting that backs AdwStyleManager.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5545

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agostyle: Fixes deprecated compound selectors in sass
Sam Hewitt [Wed, 24 May 2023 12:42:11 +0000 (10:12 -0230)]
style: Fixes deprecated compound selectors in sass

- closes #6718

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2775>

3 years agoibusManager: Close candidate popup upon engine change
Daniel Drake [Wed, 24 May 2023 08:34:42 +0000 (10:34 +0200)]
ibusManager: Close candidate popup upon engine change

The IBusCandidatePopup can get 'stuck' in an active, visible state if
it is on-screen at the point when the input method is changed to a method
that doesn't use such popup (e.g. regular English).

Force the candidate popup to close when the engine is changed.
It will reappear (via regular lookup table update signal) if/when it is
next required.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6717
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2774>

3 years agostyle: Add missing transition timings to some widgets
Automeris naranja [Sun, 21 May 2023 22:51:46 +0000 (19:51 -0300)]
style: Add missing transition timings to some widgets

This change adds missing transition timings to the following widgets:

- Calendar month selectors
- App grid page arrows
- Page indicators dots from the app grid

Follow-up from https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2309/diffs?commit_id=ec571eb86fce93b3b37306b3478cde24019ce8e9

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2665>

3 years agoUpdate Czech translation
Daniel Rusek [Mon, 22 May 2023 13:13:08 +0000 (13:13 +0000)]
Update Czech translation

3 years agodnd: Don't leak a signal connection
Zacharie DUBRULLE [Thu, 18 May 2023 11:40:32 +0000 (11:40 +0000)]
dnd: Don't leak a signal connection

The handler is currently leaked when a drag monitor stops a
motion event.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2770>

3 years agoci: Bump mutter image
Florian Müllner [Fri, 19 May 2023 14:37:49 +0000 (16:37 +0200)]
ci: Bump mutter image

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2772>

3 years agostyle: Clean up calendar widget css
Sam Hewitt [Wed, 17 May 2023 18:54:49 +0000 (16:24 -0230)]
style: Clean up calendar widget css

- use existing button styles for the calendar items
- change visual treatment of weekends; fixes #1767
- clean up class names

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2769>

3 years agostyle: Fix inconsistency in app folder entry style
Sam Hewitt [Wed, 17 May 2023 17:41:54 +0000 (15:11 -0230)]
style: Fix inconsistency in app folder entry style

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2768>

3 years agopopupMenu: Replace ornament unicode with icons
maniacx [Tue, 16 May 2023 23:33:19 +0000 (18:33 -0500)]
popupMenu: Replace ornament unicode with icons

Ported from Sam Hewett's Merge-Request.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2308#8714a3530d73823716c0f8334aceaabeaccd01b7

The CHECK ornament used in powerprofile and volume control is not very
pleasant looking, specially if system font is changed.
Replace CHECK and DOT unicode ornament with revelant icons in popupMenu.

Solves issue: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6055

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2767>

3 years agostyle: Scale calendar heading with font size
Sebastian Keller [Wed, 3 May 2023 10:04:00 +0000 (12:04 +0200)]
style: Scale calendar heading with font size

Using a fixed pixel size can result in the cell being too small for the
contained label. Instead use em to scale with the font size like is done
for the other cells. The chosen size corresponds to 16px with the
default font settings.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6651
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2759>

3 years agotools/create-toolbox: Allow setting up support for GNOME Classic
Florian Müllner [Sun, 19 Mar 2023 17:43:19 +0000 (18:43 +0100)]
tools/create-toolbox: Allow setting up support for GNOME Classic

As unbeloved as it is, it still needs testing. Make that a tad
bit less annoying by automating the setup.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Allow enabling additional locales
Florian Müllner [Mon, 20 Mar 2023 20:21:36 +0000 (21:21 +0100)]
tools/create-toolbox: Allow enabling additional locales

Out of the box, the container images only support US English. It
can sometimes be necessary to use a different locale, so add
a convenience flag to enable support for additional locales.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Optionally create Builder config
Florian Müllner [Fri, 17 Mar 2023 09:32:33 +0000 (10:32 +0100)]
tools/create-toolbox: Optionally create Builder config

It is possible to run gnome-shell nested from gnome-builder,
but the setup is fairly tedious.

Add another option to the script to generate a suitable
.buildconfig file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Allow skipping mutter build
Florian Müllner [Sat, 18 Mar 2023 03:45:26 +0000 (04:45 +0100)]
tools/create-toolbox: Allow skipping mutter build

The container is useless for building or running gnome-shell unless
it includes the correct mutter version, so building it by default
makes sense.

However a manual build can be significantly faster when there's an
existing build dir, so add an option to skip the automatic build.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Allow replacing existing toolbox
Florian Müllner [Mon, 20 Mar 2023 14:09:25 +0000 (15:09 +0100)]
tools/create-toolbox: Allow replacing existing toolbox

A toolbox created by the script can be used as the base of a pet
container that is manually updated with new dependencies over time
and accumalates additional packages; or it can be used as a deposable
container that is recreated each time the dependencies change.

To make the latter case more convenient, add a --replace option
that deletes an existing toolbox before creating the new one.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Add convenience script
Florian Müllner [Fri, 17 Mar 2023 00:07:56 +0000 (01:07 +0100)]
tools/create-toolbox: Add convenience script

The script is a thin wrapper around `toolbox create`, mainly to
avoid the tedious image names. In addition, it allows us to
ensure that the container includes a matching mutter version.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agoci: Produce toolbox images
Florian Müllner [Thu, 16 Mar 2023 18:01:45 +0000 (19:01 +0100)]
ci: Produce toolbox images

Toolbox is a convenient option for development, but setting up
the image with all dependencies is annoying at best, in particular
later in the cycle when `dnf builddep` is likely insufficient.

To address that, produce toolbox images for main and stable branches
that are based on the regular CI image, and update them whenever
the image version is updated. This guarantees that all build- and
runtime dependencies are included.

Unsurprisingly, the script that produces the image draws heavily
from freedesktop's ci-templates. The most notable difference
(other than being neither distro-agnostic nor generic) is that
tag names are fixed (toolbox:main, toolbox:43 etc.) to make them
easier to consume.

Instead, whether an image needs rebuilding is based on a custom
label that records the base image that was used.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agompris: Fall back to app icon first
Florian Müllner [Wed, 19 Apr 2023 10:54:17 +0000 (12:54 +0200)]
mpris: Fall back to app icon first

When no cover art is available, the app icon at least allows
distinguishing between different players, so try falling back
to that before using the generic icon name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2755>

3 years agompris: Expose player app
Florian Müllner [Wed, 19 Apr 2023 10:51:14 +0000 (12:51 +0200)]
mpris: Expose player app

This will allow accessing it from the notification.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2755>

3 years agoUpdate Hebrew translation
Yosef Or Boczko [Mon, 15 May 2023 13:28:17 +0000 (13:28 +0000)]
Update Hebrew translation

3 years agoUpdate Catalan translation
Jordi Mas [Fri, 12 May 2023 17:37:15 +0000 (19:37 +0200)]
Update Catalan translation

3 years agoUpdate French translation
Guillaume Bernard [Fri, 12 May 2023 12:22:00 +0000 (12:22 +0000)]
Update French translation

3 years agoUpdate Italian translation
Gianvito Cavasoli [Thu, 11 May 2023 15:45:43 +0000 (15:45 +0000)]
Update Italian translation

(cherry picked from commit e8d2012983e4883c849b7755cb01c92db2b821e6)

3 years agopolkitAgent: Fix closing dialog properly
Joan Torres [Tue, 9 May 2023 16:36:40 +0000 (18:36 +0200)]
polkitAgent: Fix closing dialog properly

When pressing the close button on the dialog the polkit request isn't
completed leaving the polkit agent blocked unable to handle new
requests.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2761>

3 years agoshell: Use swapped signal connection for MetaWindowActor::destroy
Carlos Garnacho [Mon, 1 May 2023 15:04:46 +0000 (17:04 +0200)]
shell: Use swapped signal connection for MetaWindowActor::destroy

The callback would schedule a clutter_actor_destroy() on the first
argument. Unless told otherwise, this is the same actor that is
already being destroyed, so this is a no-op.

Instead, the intent is to make the clone follow up destruction of
the window actor so that it results in correct removal of this
window from the ShellWindowPreviewLayout. Use a swapped connection
to pass the clone actor as the first argument of the signal callback.

Fixes: 04c781674c ("Move WindowPreviewLayout from JS to C")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6570
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2756>

3 years agostyle: Adjust the tooltip style; fix inconsistency with screenshot UI
Sam Hewitt [Tue, 2 May 2023 13:31:12 +0000 (11:01 -0230)]
style: Adjust the tooltip style; fix inconsistency with screenshot UI

- remove screenshot tooltips using a style different from other tooltips
- tone down how dark they are
- fix missing background adjustment for high contrast

Fixes #6660

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2757>

3 years agoUpdate Turkish translation
Sabri Ünal [Mon, 1 May 2023 10:29:52 +0000 (10:29 +0000)]
Update Turkish translation

3 years agoUpdate Finnish translation
Jiri Grönroos [Sat, 29 Apr 2023 11:30:16 +0000 (11:30 +0000)]
Update Finnish translation

(cherry picked from commit 60200c88a85d0952500fa9b2a7d25384c65f37b7)